Video content is constantly being accessed by users of various handheld and computing devices whether that data is streamed, purchased, rented, or requested for download from a server, exchanged between users as in a video conference call, or published for sharing with friends and family. However, given the variety of devices that may access a given video, and the limitations of the multiple and various networks used for accessing and exchanging that video data, multiple versions of a single video are often created and stored. For example, through these multiple versions, different resolutions of the video content are provided via multiple created streams or tracks. This allows individuals accessing the video content on a smart phone to view the same video content as individuals accessing the video content on a desktop or television system, with the content tailored to the receiving device. Additional considerations such as audio, captions, subtitles in different languages and decoders that are not compatible with the different coding types may additionally each require a completely different version of the same video content.
Some video content is accessed only a single time, in which case the video may be streamed to a device, decoded, rendered on the display, and discarded. However, other video content may be downloaded and stored locally to be played at a future date. Additionally, source video content may be updated subsequent to the download. For example, a new commentary track, a new subtitle language, caption information, or an alternate quality stream may be made available after the original video was already downloaded.
While traditional HTTP Live Streaming (HLS) provides for streaming of movie data and buffering of received movie data to be played on a local device, HLS traditionally does not provide for storing received movie data as a dynamic movie package or for updating the stored movie package with additional or new versions of the movie data as necessary.
Accordingly, there is a need in the art for a flexible and adaptable movie package storage system that provides for efficient updates to the movie package as they become needed or available. Such a storage system provides for systems and methods that create and access video data in a more user-friendly and resource friendly manner.